/*
 * @Description  : 作品 API
 * @Author       : YiDing Xue
 * @Date         : 2023-03-03
 * @LastEditors  : YiDing Xue
 * @LastEditTime : 2023-03-11
 */
import { request } from '@/utils'

const API = {
  works: '/works/filter', // 根据作品分类和总类查询列表
  worksType: '/works/worksType', // 专辑种类
  worksInfo: '/works/worksInfo', // 作品详情
  catalogue: '/album/catalogue', // 作品目录
  selCollectionWorks: '/collectionWorks/selCollectionWorks', // 作品是否收藏
  addCollectionWorks: '/collectionWorks/addCollectionWorks', // 作品添加到收藏
  audioSource: '/album/episodesPlay', // 音频资源
  noteCount: '/note/count', // 几本书/几字笔记
  note: '/note/noteList' // 根据类型查笔记
}

/**
 * 专辑种类(有声书-电子书-纸质书)
 * @param {String} worksName 专辑名称
 * @returns
 */
export const worksType = worksName => request.get(API.worksType, { noNeedToken: true, params: { worksName } })

/**
 * 根据作品分类和总类查询列表
 * @param {Object} params 分页信息和参数
 * @returns
 */
export const works = params => request.get(API.works, { noNeedToken: true, params })

/**
 * 作品详情
 * @param {String} moduleWorksId   作品 ID
 * @returns
 */
export const worksInfo = moduleWorksId => request.get(API.worksInfo, { noNeedToken: true, params: { moduleWorksId } })

/**
 * 作品目录
 * @param {object} params 分页信息和参数
 * @returns
 */
export const catalogue = params => request.get(API.catalogue, { noNeedToken: true, params })

/**
 * 查看作品是否收藏
 * @param {String} phoneNumber 电话号码
 * @param {String} moduleWorksId 作品 ID
 * @returns
 */
export const selCollectionWorks = (phoneNumber, moduleWorksId) =>
  request.get(API.selCollectionWorks, { noNeedToken: true, params: { phoneNumber, moduleWorksId } })

/**
 * 作品添加到收藏
 * @param {String} phoneNumber 电话号码
 * @param {String} moduleWorksId 作品 ID
 * @returns
 */
export const addCollectionWorks = (phoneNumber, moduleWorksId) =>
  request.post(API.addCollectionWorks, { phoneNumber, moduleWorksId })

/**
 * 根据集数和专辑 ID 获取播放数据
 * @param {String} albumId 专辑 ID
 * @param {sort}   sort      书籍集数(不传会查询此专辑最后一次播放的剧集记录)默认null
 * @returns
 */
export const audioSource = (albumId, sort) =>
  request.get(API.audioSource, { noNeedToken: true, params: { albumId, sort } })

/**
 * 获取几本书/几字笔记
 * @returns
 */
export const noteCount = () => request.get(API.noteCount)

/**
 * 根据类型查笔记
 * @returns
 */
export const note = type => request.get(API.note, { params: { type } })
